$(function() {
    var layer = layui.layer

    // 1.1 获取裁剪区域的 DOM 元素
    var $image = $('#image')
        // 1.2 配置选项
    const options = {
        // 纵横比
        aspectRatio: 1,
        // 指定预览区域
        preview: '.img-preview'
    }

    // 1.3 创建裁剪区域
    $image.cropper(options)

    // 为按钮绑定点击事件
    $('#btnChooseImage').on('click', function() {
        $('#file').click()
    })

    // 为文件选择框绑定 change 事件
    $('#file').on('change', function(e) {
        let filelist = e.target.files
        if (filelist.length === 0) {
            return layer.msg('请选择文件')
        }

        // 1.拿到用户选择的文件
        let file = e.target.files[0]
            // 2.将文件，转换为路径
        let imgURL = URL.createObjectURL(file)
            // 3.重新初始化剪裁区域
        $image.cropper('destroy') //销毁旧的剪裁区域
            .attr('src', imgURL) //重新设置图片路径
            .cropper(options) //重新初始化剪裁区域
    })

    // 为确定按钮绑定点击事件
    $('#btnUpload').on('click', function() {
        // 要拿到用户剪裁之后的头像数据(base64编码字符串)
        let dataURL = $image.cropper('getCroppedCanvas', {
                // 创建 一个 canvas 画布
                width: 100,
                height: 100
            })
            .toDataURL('image/png') // 将 canvas 画布上的内容，转换为base64 编码

        // 调用接口，把头像上传到服务器
        $.ajax({
            method: 'POST',
            url: '/my/update/avatar',
            data: {
                avatar: dataURL
            },
            success: function(res) {
                if (res.status !== 0) {
                    return layer.msg('更换头像失败！')
                }
                layer.msg('更换头像成功！')
                    // 如果更换成功，则调用 父页面显示 用户信息方法，重新获取并显示
                window.parent.getUserInfo()
            }
        })
    })
})